package com.jiangli.service;

import com.jiangli.dto.*;
import com.jiangli.entity.User;
import com.jiangli.result.PageResult;
import com.jiangli.result.Result;
import com.jiangli.vo.UserLoginVO;

import java.util.List;

public interface UserService {

    User wxLogin(UserLoginDTO userLoginDTO);

    /**
     * 向用户邮箱中发送验证码
     * @param email
     */
    void sendCode(String email);

    /**
     * 用户注册
     * @param registerDTO
     * @return t 成功 f 失败
     */
//    boolean register(RegisterDTO registerDTO);

    /**
     * 编辑用户信息
     * @param userUpdateDTO
     */
    void updateUserInfo(UserUpdateDTO userUpdateDTO);
//
//    /**
//     * 重置用户密码
//     * @param password
//     */
//    void resetPassword(String password);
//
////    /**
////     * qq登录
//     * @param userLoginDTO
//     * @return
//     */
//    User qqlogin(UserLoginDTO userLoginDTO);
//
//
//    /**
    // 用户忘记密码
     // @param userForgetDTO
  //   * @return
//   //  */
//    Result forget(UserForgetDTO userForgetDTO);

//    /**
//     * 用户忘记密码
//     */
//    void sendForget();

    /**
     * 获取用户信息
     * @param id
     * @return
     */
    UserLoginVO getUserInfo(Long id);

    /**
     * 管理端获取全部用户信息
     * @return
     */
    List<User> getAllUsers();

    /**
     * 分页查询用户
     * @param userPageQueryDTo
     * @return
     */
    PageResult pageQuery(UserPageQueryDTO userPageQueryDTo);

    /**
     * 更新用户账号状态
     * @param status
     * @param id
     */
    void updateUserStatus(Integer status, Long id);
}
